23

» WarCraft 3 / Напомните название карты

Похожие вопросы:

ответ
закрыт по таймауту
ответ
Утечка - это когда не удаляются ненужные объекты. Здесь регион нельзя удалять, потому что без него событие не будет работать. Но если у вас много таких событий, то лучше использовать один регион для всех событий, при условии, что размеры региона не будут изменяться в процессе игры, потому что это может нарушить работу других событий, привязанных к данному региону.
А функция TriggerRegisterEnterRectSimple в теории не утечна, но на практике может утекать, например, если в потоке триггера будет вызвано её уничтожение RemoveRegion(GetTriggeringRegion()).

23

» WarCraft 3 / Поведение ИИ

Похожие вопросы:

ответ
ИИ стандартный, полагаю? Стандартному ИИ вроде как вижн не важен, он и так знает где все находятся, если мне не изменяет память. Как от него не прячься, найдет сразу. Если уж очень хочется - давать юнитов нейтралам и делать их союзным всем ботам. (игроков 16, если не изменяет память). Или давать союзным игрокам, при наличии. По крайней мере не будут мчаться в след за армией. Однако вполне могут быть более качественные решения проблемы, я стандартный ИИ не изучал, не могу быть уверен в офигительности предложенного решения. :)
ответ
1.интерфейс/монстры-возвращение охраны ставь на 10000
2.удаляешь игрока 12 чтобы в игре он незначился а монстров создаёшь для него уже в игре у них недолжна быть прикреплена точка ожидания
3.их надо заставлять переодически двигаться либо всех разом в пределе 5 сек,либо переберая поочерёдно в 0,1сек а если их очень много то 0,05сек
4.то что ты описываешь бывает при очень большом количестве мобов,вариант сделать норм систему где мобы не наваливались волнами на предыдущих адержались определённого кол на карте
ответ
Попробовал прикрепить голову и прочее забаганное к кости Bone_Head, всё работает. В подобных ситуациях можно пробовать крепить мясо к кости старше по иерархии. Обычно они мало чем отличаются (особенно когда речь идёт о костях с приставкой "Bone_" в начале их названия) от тех, что стоят на одну ступень ниже по иерархии.
И ещё, советую удалить лицо изначальной банши, так как его уже загородила башка сильваны. Тоже самое и с туловищем, и с прочими скрытыми частями модели, это уменьшит вес. Также не забывайте использовать функцию оптимизации модели.

23

» WarCraft 3 / Как сделать эту абилку?

Похожие вопросы:

ответ
Готово!
ответ
У целителей и волшебниц уже есть способности, только они запрещенные, если именно это то что тебе нужно, то создай пустое исследование и добавь его в требования(requirements) у способности.
ответ
Был подобный вопрос, там есть карта: xgm.guru/p/wc3/199494.
ответ
Самый простой способ и один из самых криво выглядящих - чтобы герой качал подставные способности, которые никак не связаны с реальными - с универсальным описанием вида "первая способность", "вторая способность", а реальные способности чтобы выдавались и прокачивались триггерно на основе прокачки подставных.
ответ
Drulia_san, Ну да.
Добавляешь аурку - вот тебе баф на юните. Самый простой способ как по мне.
+Можно эффекты настроить, что вполне неплохо. Пока висит фейковый баф(наша аура) - на юните есть эффект.
Через дамми касты я пробовал, но долго+муторно+подключается дамми система = +лаги и местами утечки.
Насчёт таймаута - это уже по самим спеллам, я долго мучался чтобы оно всё работало как надо и не оверлапалось
Вот такой штукой у меня удаляется баф:
public function unitRemoveAbilityandBuffBY(unit u,integer dhv,integer mLv) returns boolean
	boolean b=UnitRemoveAbility(u,dhv)
  	UnitMakeAbilityPermanent(u,false,dhv)
  	UnitRemoveAbility(u,mLv)
	return b

23

» WarCraft 3 / Подскажите пожалуйста название карты:

Принятый ответ
Похожие вопросы:

ответ
War3.mpq/UI/Console
War3.mpq/UI/Widgets/Console
ответ
Wyett, ты можешь добавлять подобные этим:
function ... takes ... returns ...
Код
endfunction
Резака купить можно, но это будет абсолютно не похоже на покупку дирижабля.
ответ
gabriel_fisher, скорее всего, тебе нужны анимационные теги
теги бывают разные: alternate, gold, lumber, defend, flesh и др
например, у рабочего есть анимации attack, walk, death и если ему добавить тег lumber, тогда вместо этих анимаций будут проигрываться attack lumber, walk lumber и death lumber соответственно.
Теги можно добавлять/убирать тригерно
Анимация - Add/Remove Animation Tag
или с помощью jass
native AddUnitAnimationProperties takes unit whichUnit, string animProperties, boolean add returns nothing
Также теги можно добавлять в Редакторе Объектов
Графика - Нужная анимация
ответ
закрыт по таймауту
ответ
vlad2010pilot, как изменить текст Предметы я уже написал.
А то что ты хочешь изменить (Меню паузы или Таблица рекордов) лежит:
Граница - UI\Widgets\EscMenu\Human\editbox-border.blp
Кнопка развертывания - UI\Widgets\Glues\Gluescreen-Scrollbar-DownArrow.blp
Кнопка сворачивания - UI\Widgets\Glues\Gluescreen-Scrollbar-UpArrow.blp
Фон - UI\Widgets\EscMenu\Human\editbox-background.blp

23

» WarCraft 3 / Размер декорации ?

Похожие вопросы:

ответ
слк оптимизаторы + тула векса
короче поиск по запросу оптимизатор
ответ
Цикл — это loop? Мб лимит операций. Попробуй таймером.
Изменение текстур земли — это
SetTerrainType(real x, real y, integer terrainType, integer variation, integer area, integer shape)
ответ
Увеличить максимальный масштаб в редакторе объектов.
ответ
PhysCraft, да, карта вполне могла сломаться при пересылке. Попробуй переслать обратно и проверить откроется ли она у твоего напарника.

23

» WarCraft 3 / Напомните карту

Похожие вопросы:

ответ
Если там Архамонд бегал с серым фалосом за паладинами, то карта называется: 18+
ответ
Все нашел, извиняйте
ответ
закрыт по таймауту
ответ
Утечка - это когда не удаляются ненужные объекты. Здесь регион нельзя удалять, потому что без него событие не будет работать. Но если у вас много таких событий, то лучше использовать один регион для всех событий, при условии, что размеры региона не будут изменяться в процессе игры, потому что это может нарушить работу других событий, привязанных к данному региону.
А функция TriggerRegisterEnterRectSimple в теории не утечна, но на практике может утекать, например, если в потоке триггера будет вызвано её уничтожение RemoveRegion(GetTriggeringRegion()).

23

» WarCraft 3 / Очень странный баг

Похожие вопросы:

ответ
в чем вопрос?
ответ
Проблема решена. Обнаружилась довольно неожиданно - заметил, что во время крита герой не разбивал лицо сам себе, начал искать модификаторы атаки - у героя было 3 пустышки с нулевыми значениями на основе "ракет". При всех пустых значениях вылетает невидимая ракета по самому себе.
ответ
Вшито в движок. Простым смертным метелица не дает возможности в редакторе пользоваться % снижением здоровья всех войск.
ответ
not_name:
я карту посмотрел, да, пытался сделать похожее
только там с очередью приказов шляпа выходит, поэтому я лучше сделаю все визуально

в общем, реализовал, как и говорил выше - при смерти сразу воскрешаю героя на месте гибели, пауза, анимация, таймер, по прошествии таймера - выдаю все нужное, при повторной смерти - забираю
адекватно работает с крестами

23

» Администрация XGM / Ссылка картинкой

Похожие вопросы:

ответ
По новым правилам выдачи ресурсы проектов 3 уровня попадают на главную. Самый последний ресурс war3 будет отображаться на главной, так что дублировать ресурсы не имеет смысла.
ответ
нет.
ответ
удалил, ибо толку от него нет
ответ
Привет.
Основные правила пользования сайтом - xgm.guru/p/xgm-team/rules
Ссылка на правила для работ раздела WarCraft - xgm.guru/p/wc3/rules-maps?
Конкретно твоя работа проходит премодерацию после внесённых изменений.
ответ
Ачивница приехала, искать в профиле
Блин, тут ведь про то, что сломались достижения?

23

» WarCraft 3 / Некоторые функции юнитов

Похожие вопросы:

ответ
Я бы на вашем месте использовал "Custom Script", то есть вставил локальные переменные на языке jass. Вышло бы приблизительно так:
Вот рабочий триггер. Никаких глобальных переменных. Работает со множествами игроков и юнитов. Не тормозит карту.
В условиях: (Ability being cast) равно "Здесь поставь способность которая применяется на юнита"
Описываю действия:
  1. Создаем локальную переменную юнита
  2. Даем юниту на которого применяется способность "Невидимость", способность "Змеиная ловкость"
  3. В локальную переменную юнита вписываем юнита на которого применена способность
  4. Ждем тридцать секунд, то есть столько времени, сколько у юнита будет доп. способность "Змеиная ловкость"
  5. По истечении времени забираем у юнита доп. способность "Змеиная ловкость"
В пятой строке 'AEev' - это код способности "Змеиная ловкость"
Если что-то не понятно - обращайся.
Напоминаю - триггер полностью играбельный!
К комментарию добавляю карту с рабочим триггером:
ответ
Bravotan, вот список функций (так же есть в теме с мх)
Функций очень много, некоторые работают своеобразно читайте тему с мх и задавайте там вопросы по функциям.
ответ
после разложения костей юниты сами выгружаются из памяти
функция "wait" то же вызывает утечки
она не вызывает утечки, она сама по себе кривая и не подходит под большинство задач
если создать переменную "Point" типа "точка" и изначально задать ей положение центр области "Final", а потом обращаться уже к этой переменной "Point" в триггере событие "боевая единица входит в область "Start", действие "отдать приказ боевой единице следовать в "Point" , то новые точки создаваться не будут?
да
только в гуи еще и создание юнитов утекает тоже насколько я помню, надо тоже заранее точку делать
впринципе можно было бы обойтись одной точкой на все действия, но вам видимо пока рано

23

» WarCraft 3 / Ауры

Похожие вопросы:

ответ
Аура торнадо.
Аура выносливости с отрицательными значениями и врагами в допустимых целях.
ответ
Разрешённые цели - добавляешь "Здания"
Эффект на них работает, но без иконки снизу.
Только что потестил на "Доспехах веры"
ответ
XGM Bot:
Похожие вопросы:

ответ
Карта со всеми утечками и описанием их.
Вместо проклятия банши можно юзать туман(не рекоменд) или безмолвие(там есть вроде бы шанс промаха).
Ещё можно сделать ауру на основе пламени феникса, которое действует на своих.
Юнит повреждён
  • урон меньше 1
  • источник - союзный герой
дать уклонение
вейт/таймер
убрать уклонение если триг юнит не имеет баффа пламени(длительность регулируем)
1
ответ
Extremator, ты сам только что ответил на вопрос
при включении армлета:
  • увеличиваем урон на 31
  • отнимаем 5 хп каждые 0,11 секунды
  • даём 4,17 силы каждые 0,1 секунды пока не будет 25 силы
  • давать 4 брони спустя 0,6 секунды
с промахами радика тоже всё просто
дами каст промахов на всех кто попал под действие радика
как работать с таймерами и дамикастом написано в статьях
или вы ждёте что мы за вас будем делать?
вот статьи
вот стол заказов

ответ
~8gabriel8:
Определил причину невидимости модели после сохранения в war3me. В Geoset Animation Manager должна стоять Alpha 1, а он почему-то делает 0 или -1.

Поставил в Geoset Animation Manager не глобальные Color и Alpha, а для первых кадров всех 6 анимаций. Стало всё нормально и триггерные костыли не нужны.
Модель красного свечения ауры на юнитах:
Карта с этой аурой:
А отредактировать mdx в HEX-редакторе не сумел.
ответ
Настройки нужно немного другие, наземные, враги, организмы, нейтральные. Там далеко не так как написано работает фильтр, некоторые критерии работают только совместно. Где то даже была статья как делать такие настройки, чтобы работало только на нужные цели.

23

» WarCraft 3 / Юнит как Герой + его позиция

Похожие вопросы:

ответ
Ну у мастера клинка способность то посложнее...
Вот пример:
Для начала нам нужно создать иллюзии героя, а потом скрыть всех их, так же сделав визуальный эффект (если что то зеленые тени, это снаряды).

23

» WarCraft 3 / Проблемы утечек

Похожие вопросы:

ответ
Какой ужас
Делай вот так.
бронепоезд
создать.
направить на 128 точек наверх(90)
сделать неперманентным
текст удалится через 3 секунды
текст затухнет до 100% прозрачности через 3 секунды
Вот чёрт. не успел приплюснуть к посту.
ответ
Ну еще и 100500 юнитов могут начать лагать, 60+ на игрока которые куда то бегут уже не хорошо.
Так же советую сделать всех юнитов суммонами, чтобы они не разлагались
call UnitApplayTimedLife( unit, 'BFig', 0.00 ) это существенно снизит нагрузку на движок
P.S в ваших юнитах совсем не разобрался, какой то кавардак - нету четкого разделения на юнитов для волн, боссы, суммоны героев, герои игроков....
ответ
Прошу прощения, перепроверил, не течет, занимает 4 хендла на время действия, потом чистит
ответ
Steal nerves:
объяснение
если герой удалил с помощью репик героя
Не понял что ты написал, если имеешь в виду удалить героя (RemoveUnit), то это событие никогда не запустит поток, так как объекта то уже нет (удален). Не должно по идее. Во-вторых, нельзя удалить событие. Событие обычно вешают (регистрируют) на объекты (юниты, игроки и др), большая часть стандартных событии (юнит умирает, юнит применяет абилу и др короче общие события) - вешают (регистрируют) на игроков. Короче событие - рычаг, который фиксирует изменения объекта. Есть другие еще событие со временем - "запускать каждые ... секунд" - тоже рычаг, но переменных не дает (типа Dying Unit(), GetTriggerUnit() и др)
Если смотреть по поводу того утечек и как лучше сделать/оптимизировать случаи с единичными событиями, которые вешают на одного юнита:
  1. есть два варианта либо вешаешь все на один триггер события разных юнитов (еще нужно в некоторых случаях запихивать юнитов в группу для проверки, если там такой юнит есть, то не нужно добавлять) и не париться (рабочий вариант). Пример_GUI_Impetus,
  2. Или создаешь каждый раз новый триггер, регистрируешь на него событие юнита (пример при атаке), (так было сделано в доте, видимо для успешной атаки, типа отслеживаешь что это был физический удар, скилл Impetus), потом ссылки на action и condition запоминаешь в переменные или в хэшз, затем удаляешь условие/действие, и триггер удалить. Условие можно не удалять, кто-то писал что не нужно
Можно привести к моему выводу, что событие не удалить. Тестировал давно функции ссылка на игроках, Рисую ситуацию: на игрока зарегистрировал событие (применить скилл), прикрепил также к триггеру условие и действие.
Игрок запускает способность => срабатывает событие => проходит проверка условия => действие.
Если убрать действие или условие, то рычаг все равно работает. Отсюда следует вывод: даже будь хоть выключен триггер, событие все равно работает. Функция GetTriggerEvalCount - этой функции можно проверить сколько раз запускал условие с событием. Но как-то пробовал еще и без условия проверить, прокатывает и на событие походу (точнее это счетчик на событие). Так как рычагом является игрок. А если рычагом станет не игрок, а юнит (часто систему урона на него вешают), то там юнита можно удалить, и событие никогда не заработает, так как его уже нет
Что хочу сказать. Если у тебя 50 триггерных скилов, и 50 триггеров с одним и тем же событием, лучше его оптимизировать, на одно событие. Где-то была ссылка
это будет надеюсь понятно
ответ
Steal nerves:
Alexey103, а у меня работает, проверял. тут ошибка в названии переменной, скорее всего, зачем ты задал такое. Мб оно слишком длинное и через нижнее подчеркивание? и путь модель указывают в jass не через один обратный слэш "/", а через двойной слэш "//". Это на гуи один, на джаз два слэша

23

» WarCraft 3 / Фаталит карта

Похожие вопросы:

ответ
Было создано 22 366 679 экземпляров класса CUnitListNode, которые заняли 255.9 МБ памяти.
При очередной попытке выделения, игра упала.
Виной всему утечки памяти: за 21 минуту набралось 80 тысяч групп и 20 тысяч точек.
Также, из-за выполнения большого количества кода, сильно лагает.
На стадии выбора героя (первые две минуты), выполняется 550 000 операций в секунду, а далее — 1 200 000.
Для сравнения: лимит потока — 300 000 операций.
Хорошо, что ты приложил карту, так как в логе маловато информации.
ответ
ScopteRectuS, ну как я и догадывался, что идет рекурсия.
10 событий - юнит получает урон, на одного юнита... Нужны именно такого типа проверки, всегда в условии триггера проверяй от кого урон и какой этот урон с помощью флага глобалки как в примере.В блоге лича хорошо описаны костыли доты, почитай для общего развития чтобы не наступать на эти грабли еще раз.
ответ
Лол, "создать труп", нельзя ставить 12. Метод тыка побеждает
ответ
ScopteRectuS, нет, таймед лайф это своего рода бафф, он сам следит есть ли юнит. Если юнит сдохнет бафф самовыпилится самостоятельно, так что нет. Смотри баффы иллюзий и волков, они не проигрывают анимации смерти. Подбираешь бафф и все, анимации смерти невидно.
Хайдить тоже можно, под хайдом юнит нормально умирает и разлагается.
ответ
Короче, всем спасибо, пока поставлены еще количество костей, количество граней у кости и добавлены дальность атаки и цели для нее, фаталить перестало
функцию потом поменяю

23

» WarCraft 3 / Как получить кликнувшего игрока?

Принятый ответ
Похожие вопросы:

ответ
Перебором каждого игрока и проверкой, что у него щас выделен этот юнит
Или использовать EVENT_PLAYER_UNIT_SELECTED , тогда будет TriggerPlayer

23

» WarCraft 3 / Триггерно добавляем урон герою

Похожие вопросы:

ответ
Локальные переменные нельзя использовать в GUI'шных "if then else", карта просто не запустится
Т.к если GUI'шные "if then else" перевести в jass, то будет функция с действиями триггера, а чуть выше функция с условиями этого же "if then else".
А в этом и прикол локальных переменных, их можно использовать только в пределах функции в которой они были вызваны (созданы).
И лучше начни писать на jass, он легкий, хоть и кажется сложным после GUI
К примеру такие задачи на GUI которые буквально голову ломают - на jass делаются достаточно легко и быстро
дабы избежать конфликтов с многократными использованием
это будет проблематично на GUI
Поэтому лучше не парить голову этим, а почитать эти материалы:

23

» WarCraft 3 / Поворот даммика

Похожие вопросы:

ответ
~16GB:
0.06 время жизни слишком мало ставь хотя бы 0.3
ответ
Используйте Кривые Безье, с помощью всего двух значений можно нарисовать огромную кучу движений.
ответ
Всё, понял как сделать

23

» WarCraft 3 / замедление времени

Похожие вопросы:

ответ
Добавлять бафы триггерами, на сколько я знаю, нельзя, но можно снимать.
Чтобы повесить баф на юнита, нужно:
  • Создать способность которая повесит нужный баф
  • Создать дамми юнита (с абилкой москит) и дать ему эту способность
  • В нужный момент создавать этого юнита и кастовать им по нужной цели
При инициализации карты, создать и удалить всех юнитов которые будут потом создаваться триггерами, чтобы избежать секундных фризов.
ответ
Юзай ретурн баг, он снова доступен...
Просто массив целочисленных куда записаны ид code.
Вот ссылочка
ответ
Araders, ну я привык с технической точки зрения смотреть ))
Если кому нужно - есть наработка по перемещению во времени.
ответ
Вешаешь даммиками замедление на всех юнитов кроме нужного пуджа подобравшего руну, которому даешь спецэффект с следом из изображений. Еще всем замедленным юнитам меняешь скорость анимации.
Снаряды стрелков и заклинаний не замедлятся, но в пуджах все эти хуки на триггерах, так что проверяется что время замедлено, и соответственно смещаются они меньше.
ответ
А почему одну камеру нельзя использовать и изменять её положение? Рывки?

23

» WarCraft 3 / мини карта

Похожие вопросы:

ответ
есть предложение заменить значки миникарты прозрачной текстурой
ответ
ну, тогда никак
ответ
в константах уровень кампов нейтралов регулируется, с какого суммарного уровня будет желтая и красная точки
другими способами без мх никак
ответ
war3mapPreview.tga - обложка карты
war3mapMap.blp - текстура миникарты

23

» WarCraft 3 / озвучка юнита

Похожие вопросы:

ответ
Nikitos6, проверь галочки во вкладке "Вид"
ответ
UI\SoundInfo\UnitAckSounds.slk
ответ
Denis55:
Ты случайно не знаешь как они это сделали ? (сейчас залез в мпкушник там в папке ///units озвучки лежат ... сделал тоже самое даже по сути попробовал их озвучку в мпкушник засунуть свой... не видит редактор может как то что надо еще где то прописать??? (Или нужено в War3.MPQ кидать (Просто кидал я в WC3Patch.mpq)
Да, нужно прописывать, в UI\SoundInfo\UnitAckSounds.slk
ответ
Где-то я уже видел ответ на такой вопрос...
Вспомнил. На ютубе. Вбей в поисковую строку "Своя озвучка в варкрафт".
ответ
Мб озвучки просто отменили
Учитывая, что под контроль игрока эти юниты никогда не давались, разумно решили - не самое важное